from django.db import models

# Create your models here.
class Department(models.Model):
    """部门表"""
    #id = models.BigAutoField(verbose_name='id',primary_key=True)#手动设置自增主键
    title = models.CharField(verbose_name='部门标题',max_length=32)#verbose_name是给自己看的注释，不会影响数据库
    #输出对象时的返回值
    def __str__(self):
        return self.title

class UserInfo(models.Model):
    """员工表"""
    name = models.CharField(verbose_name='姓名',max_length=16)
    password = models.CharField(verbose_name='密码',max_length=64)
    age = models.IntegerField(verbose_name='年龄')
    account = models.DecimalField(verbose_name='账户余额',max_digits=10,decimal_places=2,default=0)#max_digits　数中允许的最大数目的数字 decimal_places 存储的小数位数的位数
    #create_time = models.DateTimeField(verbose_name='入职时间')
    create_time = models.DateField(verbose_name='入职时间')
    #1、无约束
    #depart_id = models.BigAutoField(verbose_name='部门id')

    #2、设置约束
    #将部门id设置为用户表的外键，也就是与部门表进行关联
    #-to-与哪张表关联
    #-to_field 与此表相关联的列
    #此处命名为depart，但实际数据库中会生成depart_id（django默认）
    #depart = models.ForeignKey(to="Department",to_field="id")#会报错，没有级联

    #3、设置级联删除，如果外键所在表的元素被删除，那么此表带有该元素的行也被删除。
    depart = models.ForeignKey(verbose_name='所在部门',to="Department", to_field="id",on_delete=models.CASCADE)

    #4、如果表间有级联，不直接删除，将外键元素置空
    #depart = models.ForeignKey(to="Department", to_field="id", null=True,blank=True,on_delete=models.SET_NULL)

    #Django中进行约束
    gender_choices=(
        (1, "男"),
        (2, "女"),
    )
    gender = models.SmallIntegerField(verbose_name="性别",choices=gender_choices)
